package com.atguigu;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class Redis_JedisPool {
    //对于链接池只需要一个就可以，那么可以使用类似于单例的效果
    private static JedisPool jedisPool = null;

    //在方法中获取连接池以及获取redis链接
    public static Jedis getJedis(String host){
        //要通过连接池来获取链接
        //那么首先第一步判断是否有连接池，没有的话先创建连接池，有的话直接用
        if (jedisPool == null){
            //设置连接池的相关参数
            JedisPoolConfig jedisPoolConfig =new JedisPoolConfig();
            jedisPoolConfig.setMaxTotal(10); //最大可用连接数
            jedisPoolConfig.setMaxIdle(5); //最大闲置连接数
            jedisPoolConfig.setMinIdle(5); //最小闲置连接数
            jedisPoolConfig.setBlockWhenExhausted(true); //连接耗尽是否等待
            jedisPoolConfig.setMaxWaitMillis(2000); //等待时间
            jedisPoolConfig.setTestOnBorrow(true); //取连接的时候进行一下测试 ping pong

            //创建链接池
            jedisPool = new JedisPool(jedisPoolConfig, host);
        }

        return jedisPool.getResource();
    }
}
